import { request } from '../../request';

/**
 * 获取数据字典类型列表
 *
 * @param dict 数据字典类型数据
 * @returns
 */
export function fetchGetDictTypeList(params?: Api.System.DictTypeSearchParams) {
  return request<Api.System.DictTypeList>({
    url: '/dict/type/list',
    method: 'get',
    params
  });
}

/**
 * 新增数据字典类型
 *
 * @param dict 数据字典类型数据
 * @returns
 */
export function fetchAddDictType(dict: Api.System.DictType) {
  return request<null>({
    url: '/dict/type',
    method: 'post',
    data: dict
  });
}

/**
 * 更新数据字典类型
 *
 * @param dict 数据字典类型数据
 * @returns
 */
export function fetchUpdateDictType(dict: Api.System.DictType) {
  return request<null>({
    url: '/dict/type',
    method: 'put',
    data: dict
  });
}

/**
 * 删除数据字典类型
 *
 * @param dict 数据字典类型数据
 * @returns
 */
export function fetchDeleteDictType(id: number | string[]) {
  return request<null>({
    url: `/dict/type/${id}`,
    method: 'delete'
  });
}

/**
 * 获取字典值列表
 *
 * @param params
 * @returns
 */
export function fetchGetDictDataList(params?: Api.System.DictDataSearchParams) {
  return request<Api.System.DictDataList>({
    url: `/dict/data/list`,
    method: 'get',
    params
  });
}

/**
 * 新增数据字典类型
 *
 * @param dictData 数据字典值数据
 * @returns
 */
export function fetchAddDictData(dictData: Api.System.DictData) {
  return request<null>({
    url: '/dict/data',
    method: 'post',
    data: dictData
  });
}

/**
 * 更新数据字典类型
 *
 * @param dictData 数据字典值数据
 * @returns
 */
export function fetchUpdateDictData(dictData: Api.System.DictData) {
  return request<null>({
    url: '/dict/data',
    method: 'put',
    data: dictData
  });
}

/**
 * 删除数据字典类型
 *
 * @param id 数据字典值ID
 * @returns
 */
export function fetchDeleteDictData(id: number | string[]) {
  return request<null>({
    url: `/dict/data/${id}`,
    method: 'delete'
  });
}
